From: James Almer Date: Mon, 30 Sep 2024 13:59:02 +0000 (-0300) Subject: avformat/mov: don't return the latest stream when an item stream is expected X-Git-Tag: archive/raspbian/7%8.1-3+rpi1~1^2^2^2~15 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/success//%22mailto:kde%40ewsoftware.de/%22/%22http:/www.example.com/cgi/success/%22mailto:kde%40ewsoftware.de/%22?a=commitdiff_plain;h=70ac2e342a1652672559c42db3e542b601a79450;p=ffmpeg.git avformat/mov: don't return the latest stream when an item stream is expected Otherwise, things like ICC profiles as read from the colr box meant for an item with no stream (like a grid) may end up being added to the wrong stream. Signed-off-by: James Almer (cherry picked from commit 04182b55494b44152146e6a6bcd5eb9403f00625) Gbp-Pq: Name 0001-avformat-mov-don-t-return-the-latest-stream-when-an-.patch --- diff --git a/libavformat/mov.c b/libavformat/mov.c index a2333ac1..5b0b23ff 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -188,6 +188,10 @@ static int mov_read_mac_string(MOVContext *c, AVIOContext *pb, int len, return p - dst; } +/** + * Get the current stream in the parsing process. This can either be the + * latest stream added to the context, or the stream referenced by an item. + */ static AVStream *get_curr_st(MOVContext *c) { AVStream *st = NULL; @@ -206,7 +210,7 @@ static AVStream *get_curr_st(MOVContext *c) st = item->st; break; } - if (!st) + if (!st && c->cur_item_id == -1) st = c->fc->streams[c->fc->nb_streams-1]; return st;